MaxComputeSQL数学函数介绍 | 您所在的位置:网站首页 › double 取模 › MaxComputeSQL数学函数介绍 |
命令格式 width_bucket(numeric , numeric , numeric , int )命令说明 设定分组范围的最小值、最大值和分组个数,构建指定个数的大小相同的分组,返回指定字段值落入的分组编号。支持的数据类型为BIGINT、INT、FLOAT、DOUBLE、DECIMAL以及数据类型2.0的DECIMAL(precision,scale),详情请参见2.0数据类型版本。此函数为MaxCompute 2.0扩展函数。 参数说明 expr:必填。需要判断分组编号的字段。 min_value:必填。分组范围最小值。 max_value:必填。分组范围最大值,最大值必须比最小值大。 num_buckets:必填。分组个数,必须大于0。 返回值说明 返回值为BIGINT类型,范围为0到设定的分组个数+1。返回规则如下: expr值小于min_value时,返回0。 expr大于max_value时,返回设定的分组个数+1。 expr值为NULL时,分组编号返回值也为NULL。其他情况返回字段值落入的分组编号。字段值对应的分组编号取值规则为floor( num_buckets * (expr - min_value)/(max_value - min_value) + 1)。 min_value、max_value或num_buckets值为NULL时,返回NULL。 示例 示例1:入参无NULL。命令示例如下。 select key,value,width_bucket(value,100,500,5) as value_group from values (1,99), (2,100), (3,199), (4,200), (5,499), (6,500), (7,501), (8,NULL) as t(key,value);返回结果如下。 +-------+--------+-------------+ | key | value | value_group | +-------+--------+-------------+ | 1 | 99 | 0 | | 2 | 100 | 1 | | 3 | 199 | 2 | | 4 | 200 | 2 | | 5 | 499 | 5 | | 6 | 500 | 6 | | 7 | 501 | 6 | | 8 | \N | \N | +-------+--------+-------------+示例2:入参存在NULL。命令示例如下。 select key,value,width_bucket(value,100,500,null) as value_group from values (1,99), (2,100), (3,199), (4,200), (5,499), (6,500), (7,501), (8,NULL) as t(key,value);返回结果如下。 +------+-------+-------------+ | key | value | value_group | +------+-------+-------------+ | 1 | 99 | NULL | | 2 | 100 | NULL | | 3 | 199 | NULL | | 4 | 200 | NULL | | 5 | 499 | NULL | | 6 | 500 | NULL | | 7 | 501 | NULL | | 8 | NULL | NULL | +------+-------+-------------+ |
CopyRight 2018-2019 实验室设备网 版权所有 |